package com.hnjme.cnec.mdm.mapper;

import com.hnjme.cnec.mdm.model.Organization;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author outta
 * @Since 1.0 2018/8/29
 */
public interface OrganizationMapper {
	/**
	 * 新增一个机构信息
	 *
	 * @param data
	 */
	void add(Organization data);

	/**
	 * 修改一个机构的信息
	 *
	 * @param data
	 */
	void update(Organization data);

	/**
	 * 启用停用机构
	 *
	 * @param enabled 是否启用 true：启用，false：停用
	 * @param code    机构代码
	 */
	void enabledOrganization(@Param("status") boolean enabled,
							 @Param("code") String code);

	/**
	 * 根据机构代码查询组织机构信息
	 *
	 * @param code 机构代码
	 * @return
	 */
	Organization find(@Param("code") String code);

	/**
	 * 查询全部的组织机构，主要提供给需要把数据落地本地的应用
	 *
	 * @return Organization
	 */
	List<Organization> queryOrganizations();

	/**
	 * 查询组织机构中的公司列表
	 *
	 * @param orgType
	 * @param queryTime
	 * @return
	 */
	List<Organization> queryUnits(@Param("orgType") String orgType,
								  @Param("queryTime") Long queryTime);

	/**
	 * 查询机构代码为<code>unitCode</code>的公司的部门列表
	 *
	 * @param unitCode
	 * @param orgType
	 * @param queryTime
	 * @return
	 */
	List<Organization> queryDepartments(@Param("unitCode") String unitCode,
										@Param("orgType") String orgType,
										@Param("queryTime") Long queryTime);
}
